[INFO] cloning repository https://github.com/PumpMagic/twitchplayspapermario
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/PumpMagic/twitchplayspapermario" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPumpMagic%2Ftwitchplayspapermario", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPumpMagic%2Ftwitchplayspapermario'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 922fc2b4974931c066c58c302dcfcc79d3437326
[INFO] checking PumpMagic/twitchplayspapermario against try#72f88fc4e9458f89516a0b8b0868f3718aec5b47 for pr-74989
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPumpMagic%2Ftwitchplayspapermario" "/workspace/builds/worker-9/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-9/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/PumpMagic/twitchplayspapermario on toolchain 72f88fc4e9458f89516a0b8b0868f3718aec5b47
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/PumpMagic/twitchplayspapermario
[INFO] finished tweaking git repo https://github.com/PumpMagic/twitchplayspapermario
[INFO] tweaked toml for git repo https://github.com/PumpMagic/twitchplayspapermario written to /workspace/builds/worker-9/source/Cargo.toml
[INFO] crate git repo https://github.com/PumpMagic/twitchplayspapermario already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] error: the lock file /workspace/builds/worker-9/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7eeb9ebdf613216ab226ef71d046f947bd3ea734e337a45a8ac321c2428de990
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "7eeb9ebdf613216ab226ef71d046f947bd3ea734e337a45a8ac321c2428de990", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7eeb9ebdf613216ab226ef71d046f947bd3ea734e337a45a8ac321c2428de990", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7eeb9ebdf613216ab226ef71d046f947bd3ea734e337a45a8ac321c2428de990", kill_on_drop: false }`
[INFO] [stdout] 7eeb9ebdf613216ab226ef71d046f947bd3ea734e337a45a8ac321c2428de990
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4b16e38180a049778e734801431238f40daab7e41f426c47986159d4840fecf2
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "4b16e38180a049778e734801431238f40daab7e41f426c47986159d4840fecf2", kill_on_drop: false }`
[INFO] [stderr]    Compiling version_check v0.9.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.21
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling serde v1.0.116
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]    Compiling proc-macro-hack v0.5.18
[INFO] [stderr]    Compiling winapi v0.3.9
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking thread_local v1.0.1
[INFO] [stderr]    Compiling user32-sys v0.2.0
[INFO] [stderr]    Compiling standback v0.2.10
[INFO] [stderr]    Compiling time v0.2.19
[INFO] [stderr]     Checking aho-corasick v0.7.13
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]     Checking regex v1.3.9
[INFO] [stderr]    Compiling syn v1.0.40
[INFO] [stderr]     Checking toml v0.5.6
[INFO] [stderr]    Compiling time-macros-impl v0.1.1
[INFO] [stderr]     Checking time-macros v0.1.0
[INFO] [stderr]     Checking tppm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved imports `time::Timespec`, `time::get_time`
[INFO] [stdout]  --> src/demc/mod.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use time::{Timespec, Duration, get_time};
[INFO] [stdout]   |            ^^^^^^^^            ^^^^^^^^ no `get_time` in the root
[INFO] [stdout]   |            |
[INFO] [stdout]   |            no `Timespec` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `self::platform`
[INFO] [stdout]  --> src/keystroke/mod.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use self::platform::{press_key, release_key};
[INFO] [stdout]   |               ^^^^^^^^ could not find `platform` in `self`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `self::platform`
[INFO] [stdout]  --> src/keystroke/mod.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use self::platform::{send_key, send_combo};
[INFO] [stdout]   |               ^^^^^^^^ could not find `platform` in `self`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `self::platform`
[INFO] [stdout]  --> src/keystroke/mod.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use self::platform::{send_char, send_str};
[INFO] [stdout]   |               ^^^^^^^^ could not find `platform` in `self`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `time::Timespec`, `time::get_time`
[INFO] [stdout]  --> src/demc/mod.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use time::{Timespec, Duration, get_time};
[INFO] [stdout]   |            ^^^^^^^^            ^^^^^^^^ no `get_time` in the root
[INFO] [stdout]   |            |
[INFO] [stdout]   |            no `Timespec` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `self::platform`
[INFO] [stdout]  --> src/keystroke/mod.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use self::platform::{press_key, release_key};
[INFO] [stdout]   |               ^^^^^^^^ could not find `platform` in `self`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `self::platform`
[INFO] [stdout]  --> src/keystroke/mod.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use self::platform::{send_key, send_combo};
[INFO] [stdout]   |               ^^^^^^^^ could not find `platform` in `self`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `self::platform`, `super::send_str`
[INFO] [stdout]    --> src/keystroke/mod.rs:5:15
[INFO] [stdout]     |
[INFO] [stdout] 5   | pub use self::platform::{send_char, send_str};
[INFO] [stdout]     |               ^^^^^^^^ could not find `platform` in `self`
[INFO] [stdout] ...
[INFO] [stdout] 233 |     use super::send_str;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_time` in crate `time`
[INFO] [stdout]    --> src/demc/mod.rs:415:38
[INFO] [stdout]     |
[INFO] [stdout] 415 |                 let time_now = time::get_time();
[INFO] [stdout]     |                                      ^^^^^^^^ not found in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tmi/irc/mod.rs:431:9
[INFO] [stdout]     |
[INFO] [stdout] 431 |         try!(IrcStream::send_message(stream, pass_message));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tmi/irc/mod.rs:432:9
[INFO] [stdout]     |
[INFO] [stdout] 432 |         try!(IrcStream::send_message(stream, nick_message));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tmi/irc/mod.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |         try!(IrcStream::send_message(stream, join_message));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tmi/irc/mod.rs:448:9
[INFO] [stdout]     |
[INFO] [stdout] 448 |         try!(IrcStream::send_message(stream, pong_message));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_time` in crate `time`
[INFO] [stdout]    --> src/demc/mod.rs:415:38
[INFO] [stdout]     |
[INFO] [stdout] 415 |                 let time_now = time::get_time();
[INFO] [stdout]     |                                      ^^^^^^^^ not found in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tmi/irc/mod.rs:431:9
[INFO] [stdout]     |
[INFO] [stdout] 431 |         try!(IrcStream::send_message(stream, pass_message));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tmi/irc/mod.rs:432:9
[INFO] [stdout]     |
[INFO] [stdout] 432 |         try!(IrcStream::send_message(stream, nick_message));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tmi/irc/mod.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |         try!(IrcStream::send_message(stream, join_message));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tmi/irc/mod.rs:448:9
[INFO] [stdout]     |
[INFO] [stdout] 448 |         try!(IrcStream::send_message(stream, pong_message));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]   --> src/main.rs:82:25
[INFO] [stdout]    |
[INFO] [stdout] 82 |                         thread::sleep_ms(500);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]   --> src/main.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 |                         thread::sleep_ms(500);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:152:78
[INFO] [stdout]     |
[INFO] [stdout] 152 |         Err(reason) => panic!("Couldn't open chat log file for writing! {}", std::error::Error::description(&reason))
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]    --> src/tmi/irc/mod.rs:392:49
[INFO] [stdout]     |
[INFO] [stdout] 392 | ...                   Err(_) => { thread::sleep_ms(100); }
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]    --> src/demc/mod.rs:466:49
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...                   thread::sleep_ms(command_clone.duration.num_milliseconds() as u32);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]    --> src/demc/mod.rs:565:17
[INFO] [stdout]     |
[INFO] [stdout] 565 |                 thread::sleep_ms(1);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]   --> src/main.rs:82:25
[INFO] [stdout]    |
[INFO] [stdout] 82 |                         thread::sleep_ms(500);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]   --> src/main.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 |                         thread::sleep_ms(500);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:152:78
[INFO] [stdout]     |
[INFO] [stdout] 152 |         Err(reason) => panic!("Couldn't open chat log file for writing! {}", std::error::Error::description(&reason))
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]    --> src/tmi/irc/mod.rs:392:49
[INFO] [stdout]     |
[INFO] [stdout] 392 | ...                   Err(_) => { thread::sleep_ms(100); }
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]    --> src/demc/mod.rs:466:49
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...                   thread::sleep_ms(command_clone.duration.num_milliseconds() as u32);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]    --> src/demc/mod.rs:565:17
[INFO] [stdout]     |
[INFO] [stdout] 565 |                 thread::sleep_ms(1);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `lookup` found for reference `&Value` in the current scope
[INFO] [stdout]   --> src/tmi/mod.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |     match tree.lookup(value) {
[INFO] [stdout]    |                ^^^^^^ method not found in `&Value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_empty` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]   --> src/tmi/irc/mod.rs:50:32
[INFO] [stdout]    |
[INFO] [stdout] 50 |         if servername_nick_str.is_empty() {
[INFO] [stdout]    |                                ^^^^^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `lookup` found for reference `&Value` in the current scope
[INFO] [stdout]   --> src/tmi/mod.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |     match tree.lookup(value) {
[INFO] [stdout]    |                ^^^^^^ method not found in `&Value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_empty` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]   --> src/tmi/irc/mod.rs:50:32
[INFO] [stdout]    |
[INFO] [stdout] 50 |         if servername_nick_str.is_empty() {
[INFO] [stdout]    |                                ^^^^^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tmi/irc/mod.rs:56:48
[INFO] [stdout]    |
[INFO] [stdout] 56 |             servername_nick: FromStr::from_str(servername_nick_str).unwrap(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tmi/irc/mod.rs:58:54
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 Some(user) => Some(FromStr::from_str(user).unwrap()),
[INFO] [stdout]    |                                                      ^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tmi/irc/mod.rs:56:48
[INFO] [stdout]    |
[INFO] [stdout] 56 |             servername_nick: FromStr::from_str(servername_nick_str).unwrap(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tmi/irc/mod.rs:62:54
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 Some(host) => Some(FromStr::from_str(host).unwrap()),
[INFO] [stdout]    |                                                      ^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tmi/irc/mod.rs:58:54
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 Some(user) => Some(FromStr::from_str(user).unwrap()),
[INFO] [stdout]    |                                                      ^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tmi/irc/mod.rs:234:60
[INFO] [stdout]     |
[INFO] [stdout] 234 |                 Some(prefix_str) => match Prefix::from_str(prefix_str) {
[INFO] [stdout]     |                                                            ^^^^^^^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/tmi/irc/mod.rs:62:54
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 Some(host) => Some(FromStr::from_str(host).unwrap()),
[INFO] [stdout]    |                                                      ^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tmi/irc/mod.rs:242:62
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 Some(command_str) => match Command::from_str(command_str){
[INFO] [stdout]     |                                                              ^^^^^^^^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tmi/irc/mod.rs:259:44
[INFO] [stdout]     |
[INFO] [stdout] 259 |                     let caps = re.captures(params_str).unwrap();
[INFO] [stdout]     |                                            ^^^^^^^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `trim` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]    --> src/tmi/irc/mod.rs:268:55
[INFO] [stdout]     |
[INFO] [stdout] 268 | ...                   for middle in middles_str.trim().split(" ") {
[INFO] [stdout]     |                                                 ^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tmi/irc/mod.rs:234:60
[INFO] [stdout]     |
[INFO] [stdout] 234 |                 Some(prefix_str) => match Prefix::from_str(prefix_str) {
[INFO] [stdout]     |                                                            ^^^^^^^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tmi/irc/mod.rs:276:82
[INFO] [stdout]     |
[INFO] [stdout] 276 |                         Some(trailing_str)  => { paramvec.push(FromStr::from_str(trailing_str).unwrap()) },
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for struct `regex::Captures<'_>` in the current scope
[INFO] [stdout]    --> src/demc/mod.rs:161:44
[INFO] [stdout]     |
[INFO] [stdout] 161 |             let (cap_start, cap_end) = cap.pos(0).unwrap();
[INFO] [stdout]     |                                            ^^^ method not found in `regex::Captures<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:185:62
[INFO] [stdout]     |
[INFO] [stdout] 185 |                         cumulative_delay += command.duration.num_milliseconds() as u32;
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]    --> src/demc/mod.rs:207:33
[INFO] [stdout]     |
[INFO] [stdout] 207 |                     match jscap.parse::<u8>() {
[INFO] [stdout]     |                                 ^^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:214:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] 214 |                         "cup" => { joystick_direction = 90; joystick_name = "c_stick"; },
[INFO] [stdout]     |                         ^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:215:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] 214 |                         "cup" => { joystick_direction = 90; joystick_name = "c_stick"; },
[INFO] [stdout] 215 |                         "cdown" => { joystick_direction = 270; joystick_name = "c_stick"; },
[INFO] [stdout]     |                         ^^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:216:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 216 |                         "cleft" => { joystick_direction = 180; joystick_name = "c_stick"; },
[INFO] [stdout]     |                         ^^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:217:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 217 |                         "cright" => { joystick_direction = 0; joystick_name = "c_stick"; },
[INFO] [stdout]     |                         ^^^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:218:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 218 |                         "up" => { joystick_direction = 90; joystick_name = "control_stick"; },
[INFO] [stdout]     |                         ^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:219:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 219 |                         "down" => { joystick_direction = 270; joystick_name = "control_stick"; },
[INFO] [stdout]     |                         ^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:220:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 220 |                         "left" => { joystick_direction = 180; joystick_name = "control_stick"; },
[INFO] [stdout]     |                         ^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:221:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 221 |                         "right" => { joystick_direction = 0; joystick_name = "control_stick"; },
[INFO] [stdout]     |                         ^^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]    --> src/demc/mod.rs:228:33
[INFO] [stdout]     |
[INFO] [stdout] 228 |                     match jdcap.parse::<u32>() {
[INFO] [stdout]     |                                 ^^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tmi/irc/mod.rs:242:62
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 Some(command_str) => match Command::from_str(command_str){
[INFO] [stdout]     |                                                              ^^^^^^^^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:234:43
[INFO] [stdout]     |
[INFO] [stdout] 234 |                         if jdcap_units == "s" {
[INFO] [stdout]     |                                           ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:259:70
[INFO] [stdout]     |
[INFO] [stdout] 259 | ...                   cumulative_delay += command.duration.num_milliseconds() as u32;
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:260:53
[INFO] [stdout]     |
[INFO] [stdout] 260 | ...                   if command.duration.num_milliseconds() >= JOYSTICK_TO_BUTTON_UNDELAY as i64 {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:265:70
[INFO] [stdout]     |
[INFO] [stdout] 265 | ...                   cumulative_delay += command.duration.num_milliseconds() as u32;
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]    --> src/demc/mod.rs:286:33
[INFO] [stdout]     |
[INFO] [stdout] 286 |                     match bdcap.parse::<u32>() {
[INFO] [stdout]     |                                 ^^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tmi/irc/mod.rs:259:44
[INFO] [stdout]     |
[INFO] [stdout] 259 |                     let caps = re.captures(params_str).unwrap();
[INFO] [stdout]     |                                            ^^^^^^^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `trim` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]    --> src/tmi/irc/mod.rs:268:55
[INFO] [stdout]     |
[INFO] [stdout] 268 | ...                   for middle in middles_str.trim().split(" ") {
[INFO] [stdout]     |                                                 ^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:292:43
[INFO] [stdout]     |
[INFO] [stdout] 292 |                         if bdcap_units == "s" {
[INFO] [stdout]     |                                           ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:302:21
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 let max_duration = match button_name {
[INFO] [stdout]     |                                          ----------- this expression has type `regex::Match<'_>`
[INFO] [stdout] 302 |                     "b" => MAX_B_BUTTON_COMMAND_DURATION,
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:303:21
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 let max_duration = match button_name {
[INFO] [stdout]     |                                          ----------- this expression has type `regex::Match<'_>`
[INFO] [stdout] 302 |                     "b" => MAX_B_BUTTON_COMMAND_DURATION,
[INFO] [stdout] 303 |                     "x" => MAX_X_BUTTON_COMMAND_DURATION,
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:304:21
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 let max_duration = match button_name {
[INFO] [stdout]     |                                          ----------- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 304 |                     "r" => MAX_R_BUTTON_COMMAND_DURATION,
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:305:21
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 let max_duration = match button_name {
[INFO] [stdout]     |                                          ----------- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 305 |                     "start" => MAX_START_BUTTON_COMMAND_DURATION,
[INFO] [stdout]     |                     ^^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `std::string::String: From<regex::Match<'_>>` is not satisfied
[INFO] [stdout]    --> src/demc/mod.rs:315:81
[INFO] [stdout]     |
[INFO] [stdout] 315 | ...                   command: virtc::Input::Button(String::from(button_name), true)};
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ the trait `From<regex::Match<'_>>` is not implemented for `std::string::String`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following implementations were found:
[INFO] [stdout]               <std::string::String as From<&mut str>>
[INFO] [stdout]               <std::string::String as From<&std::string::String>>
[INFO] [stdout]               <std::string::String as From<&str>>
[INFO] [stdout]               <std::string::String as From<Box<str>>>
[INFO] [stdout]             and 2 others
[INFO] [stdout]     = note: required by `from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]    --> src/demc/mod.rs:321:29
[INFO] [stdout]     |
[INFO] [stdout] 321 |                 match dncap.parse::<u32>() {
[INFO] [stdout]     |                             ^^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tmi/irc/mod.rs:276:82
[INFO] [stdout]     |
[INFO] [stdout] 276 |                         Some(trailing_str)  => { paramvec.push(FromStr::from_str(trailing_str).unwrap()) },
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^ expected `&str`, found struct `regex::Match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:327:39
[INFO] [stdout]     |
[INFO] [stdout] 327 |                     if dncap_units == "s" {
[INFO] [stdout]     |                                       ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:335:77
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     Some(command) => { cumulative_delay += command.duration.num_milliseconds() as u32; },
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:344:21
[INFO] [stdout]     |
[INFO] [stdout] 343 |                 match dcap {
[INFO] [stdout]     |                       ---- this expression has type `regex::Match<'_>`
[INFO] [stdout] 344 |                     "+" => { cumulative_delay += MILLISECONDS_PER_FRAME; },
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:345:21
[INFO] [stdout]     |
[INFO] [stdout] 343 |                 match dcap {
[INFO] [stdout]     |                       ---- this expression has type `regex::Match<'_>`
[INFO] [stdout] 344 |                     "+" => { cumulative_delay += MILLISECONDS_PER_FRAME; },
[INFO] [stdout] 345 |                     "!" => { 
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:352:21
[INFO] [stdout]     |
[INFO] [stdout] 343 |                 match dcap {
[INFO] [stdout]     |                       ---- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 352 |                     "." => {
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:347:85
[INFO] [stdout]     |
[INFO] [stdout] 347 | ...                   Some(command) => { cumulative_delay += command.duration.num_milliseconds() as u32; },
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:354:85
[INFO] [stdout]     |
[INFO] [stdout] 354 | ...                   Some(command) => { cumulative_delay += command.duration.num_milliseconds() as u32; },
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:466:89
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...                   thread::sleep_ms(command_clone.duration.num_milliseconds() as u32);
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for struct `regex::Captures<'_>` in the current scope
[INFO] [stdout]    --> src/demc/mod.rs:161:44
[INFO] [stdout]     |
[INFO] [stdout] 161 |             let (cap_start, cap_end) = cap.pos(0).unwrap();
[INFO] [stdout]     |                                            ^^^ method not found in `regex::Captures<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:185:62
[INFO] [stdout]     |
[INFO] [stdout] 185 |                         cumulative_delay += command.duration.num_milliseconds() as u32;
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]    --> src/demc/mod.rs:207:33
[INFO] [stdout]     |
[INFO] [stdout] 207 |                     match jscap.parse::<u8>() {
[INFO] [stdout]     |                                 ^^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:214:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] 214 |                         "cup" => { joystick_direction = 90; joystick_name = "c_stick"; },
[INFO] [stdout]     |                         ^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:215:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] 214 |                         "cup" => { joystick_direction = 90; joystick_name = "c_stick"; },
[INFO] [stdout] 215 |                         "cdown" => { joystick_direction = 270; joystick_name = "c_stick"; },
[INFO] [stdout]     |                         ^^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:216:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 216 |                         "cleft" => { joystick_direction = 180; joystick_name = "c_stick"; },
[INFO] [stdout]     |                         ^^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:217:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 217 |                         "cright" => { joystick_direction = 0; joystick_name = "c_stick"; },
[INFO] [stdout]     |                         ^^^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:218:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 218 |                         "up" => { joystick_direction = 90; joystick_name = "control_stick"; },
[INFO] [stdout]     |                         ^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:219:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 219 |                         "down" => { joystick_direction = 270; joystick_name = "control_stick"; },
[INFO] [stdout]     |                         ^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:220:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 220 |                         "left" => { joystick_direction = 180; joystick_name = "control_stick"; },
[INFO] [stdout]     |                         ^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:221:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     match jdcap {
[INFO] [stdout]     |                           ----- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 221 |                         "right" => { joystick_direction = 0; joystick_name = "control_stick"; },
[INFO] [stdout]     |                         ^^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]    --> src/demc/mod.rs:228:33
[INFO] [stdout]     |
[INFO] [stdout] 228 |                     match jdcap.parse::<u32>() {
[INFO] [stdout]     |                                 ^^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:234:43
[INFO] [stdout]     |
[INFO] [stdout] 234 |                         if jdcap_units == "s" {
[INFO] [stdout]     |                                           ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:259:70
[INFO] [stdout]     |
[INFO] [stdout] 259 | ...                   cumulative_delay += command.duration.num_milliseconds() as u32;
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:260:53
[INFO] [stdout]     |
[INFO] [stdout] 260 | ...                   if command.duration.num_milliseconds() >= JOYSTICK_TO_BUTTON_UNDELAY as i64 {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:265:70
[INFO] [stdout]     |
[INFO] [stdout] 265 | ...                   cumulative_delay += command.duration.num_milliseconds() as u32;
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]    --> src/demc/mod.rs:286:33
[INFO] [stdout]     |
[INFO] [stdout] 286 |                     match bdcap.parse::<u32>() {
[INFO] [stdout]     |                                 ^^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 39 previous errors; 19 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0425, E0432, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:292:43
[INFO] [stdout]     |
[INFO] [stdout] 292 |                         if bdcap_units == "s" {
[INFO] [stdout]     |                                           ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tppm`.
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:302:21
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 let max_duration = match button_name {
[INFO] [stdout]     |                                          ----------- this expression has type `regex::Match<'_>`
[INFO] [stdout] 302 |                     "b" => MAX_B_BUTTON_COMMAND_DURATION,
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:303:21
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 let max_duration = match button_name {
[INFO] [stdout]     |                                          ----------- this expression has type `regex::Match<'_>`
[INFO] [stdout] 302 |                     "b" => MAX_B_BUTTON_COMMAND_DURATION,
[INFO] [stdout] 303 |                     "x" => MAX_X_BUTTON_COMMAND_DURATION,
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:304:21
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 let max_duration = match button_name {
[INFO] [stdout]     |                                          ----------- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 304 |                     "r" => MAX_R_BUTTON_COMMAND_DURATION,
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:305:21
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 let max_duration = match button_name {
[INFO] [stdout]     |                                          ----------- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 305 |                     "start" => MAX_START_BUTTON_COMMAND_DURATION,
[INFO] [stdout]     |                     ^^^^^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `std::string::String: From<regex::Match<'_>>` is not satisfied
[INFO] [stdout]    --> src/demc/mod.rs:315:81
[INFO] [stdout]     |
[INFO] [stdout] 315 | ...                   command: virtc::Input::Button(String::from(button_name), true)};
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ the trait `From<regex::Match<'_>>` is not implemented for `std::string::String`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following implementations were found:
[INFO] [stdout]               <std::string::String as From<&mut str>>
[INFO] [stdout]               <std::string::String as From<&std::string::String>>
[INFO] [stdout]               <std::string::String as From<&str>>
[INFO] [stdout]               <std::string::String as From<Box<str>>>
[INFO] [stdout]             and 2 others
[INFO] [stdout]     = note: required by `from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse` found for struct `regex::Match<'_>` in the current scope
[INFO] [stdout]    --> src/demc/mod.rs:321:29
[INFO] [stdout]     |
[INFO] [stdout] 321 |                 match dncap.parse::<u32>() {
[INFO] [stdout]     |                             ^^^^^ method not found in `regex::Match<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:327:39
[INFO] [stdout]     |
[INFO] [stdout] 327 |                     if dncap_units == "s" {
[INFO] [stdout]     |                                       ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:335:77
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     Some(command) => { cumulative_delay += command.duration.num_milliseconds() as u32; },
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:344:21
[INFO] [stdout]     |
[INFO] [stdout] 343 |                 match dcap {
[INFO] [stdout]     |                       ---- this expression has type `regex::Match<'_>`
[INFO] [stdout] 344 |                     "+" => { cumulative_delay += MILLISECONDS_PER_FRAME; },
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:345:21
[INFO] [stdout]     |
[INFO] [stdout] 343 |                 match dcap {
[INFO] [stdout]     |                       ---- this expression has type `regex::Match<'_>`
[INFO] [stdout] 344 |                     "+" => { cumulative_delay += MILLISECONDS_PER_FRAME; },
[INFO] [stdout] 345 |                     "!" => { 
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/demc/mod.rs:352:21
[INFO] [stdout]     |
[INFO] [stdout] 343 |                 match dcap {
[INFO] [stdout]     |                       ---- this expression has type `regex::Match<'_>`
[INFO] [stdout] ...
[INFO] [stdout] 352 |                     "." => {
[INFO] [stdout]     |                     ^^^ expected struct `regex::Match`, found `&str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:347:85
[INFO] [stdout]     |
[INFO] [stdout] 347 | ...                   Some(command) => { cumulative_delay += command.duration.num_milliseconds() as u32; },
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:354:85
[INFO] [stdout]     |
[INFO] [stdout] 354 | ...                   Some(command) => { cumulative_delay += command.duration.num_milliseconds() as u32; },
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `time::Duration::num_milliseconds`: Use the `whole_milliseconds` function. The value is clamped between `i64::min_value()` and `i64::max_value()`.
[INFO] [stdout]    --> src/demc/mod.rs:466:89
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...                   thread::sleep_ms(command_clone.duration.num_milliseconds() as u32);
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 39 previous errors; 19 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0425, E0432, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "4b16e38180a049778e734801431238f40daab7e41f426c47986159d4840fecf2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b16e38180a049778e734801431238f40daab7e41f426c47986159d4840fecf2", kill_on_drop: false }`
[INFO] [stdout] 4b16e38180a049778e734801431238f40daab7e41f426c47986159d4840fecf2
